﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DBUtility;
using System.Collections;

namespace HXSH5._0
{
    public partial class LoginForm : Form
    {
        public LoginForm()
        {
            InitializeComponent();
        }

        //静态变量，可以在窗体之间传递
        public static string pmit;//权限
        public static string user;//用户名
        public static string pwd;//密码

        public static ArrayList Pmit(string str)
          {
              ArrayList list = new ArrayList();
              switch (str)
              {
                  case "管理员":
                      {
                          list.Add("龙埝套闸");
                          list.Add("沭阳尾水北地涵");
                          list.Add("沭阳尾水控制闸");
                          list.Add("叮当河尾水南地涵");
                          list.Add("叮当河尾水控制闸");
                          list.Add("盐河尾水南地涵");
                          list.Add("滨海抽水站");
                          list.Add("灌河地涵");
                          list.Add("响水引水闸");

                          list.Add("二河闸");
                          list.Add("淮阴第二抽水站");
                          list.Add("淮阴闸");
                          list.Add("盐河闸");
                          list.Add("淮涟闸");
                          list.Add("淮沭船闸");
                          list.Add("杨庄闸");
                          list.Add("沭阳闸");
                          list.Add("柴米地涵");
                          list.Add("柴米闸");
                          list.Add("沭新闸");
                          list.Add("虞姬沟蓄水闸");
                          list.Add("沭新退水闸");
                          list.Add("蔷薇河地涵");
                          list.Add("沭新北船闸");
                          list.Add("桑墟水电站");
                          list.Add("盐河北闸");
                          list.Add("善后新闸");
                          list.Add("烧香河闸");
                          list.Add("车轴河闸");
                          list.Add("南深泓闸");
                          list.Add("中深泓闸");
                          list.Add("北深泓闸");
                      }
                      break;
                  case "江苏省通榆河蔷薇河送清水工程管理处":
                      {
                          list.Add("龙埝套闸");
                          list.Add("沭阳尾水北地涵");
                          list.Add("沭阳尾水控制闸");
                          list.Add("叮当河尾水南地涵");
                          list.Add("叮当河尾水控制闸");
                          list.Add("盐河尾水南地涵");
                          list.Add("滨海抽水站");
                          list.Add("灌河地涵");
                          list.Add("响水引水闸");
                      }
                      break;
                  case "江苏省淮沭新河管理处":
                      {
                          list.Add("二河闸");
                          list.Add("淮阴第二抽水站");
                          list.Add("淮阴闸");
                          list.Add("盐河闸");
                          list.Add("淮涟闸");
                          list.Add("淮沭船闸");
                          list.Add("杨庄闸");
                          list.Add("沭阳闸");
                          list.Add("柴米地涵");
                          list.Add("柴米闸");
                          list.Add("沭新闸");
                          list.Add("虞姬沟蓄水闸");
                          list.Add("沭新退水闸");
                          list.Add("蔷薇河地涵");
                          list.Add("沭新北船闸");
                          list.Add("桑墟水电站");
                          list.Add("盐河北闸");
                          list.Add("善后新闸");
                          list.Add("烧香河闸");
                          list.Add("车轴河闸");
                          list.Add("南深泓闸");
                          list.Add("中深泓闸");
                          list.Add("北深泓闸");
                      }
                      break;
                  case "龙埝控制工程管理所": list.Add("龙埝套闸"); break;
                  case "沭阳控制工程管理所": list.Add("沭阳尾水北地涵"); list.Add("沭阳尾水控制闸"); break;
                  case "叮当河控制工程管理所": list.Add("叮当河尾水南地涵"); list.Add("叮当河尾水控制闸"); break;
                  case "盐河地涵管理所": list.Add("盐河尾水南地涵"); break;
                  case "滨海抽水站管理所": list.Add("滨海抽水站"); break;
                  case "灌河响水地涵管理所": list.Add("灌河地涵"); list.Add("响水引水闸"); break;
                  case "二河闸管理所": list.Add("二河闸"); break;
                  case "淮阴第二抽水站管理所": list.Add("淮阴第二抽水站"); break;
                  case "淮阴闸管理所": list.Add("淮阴闸"); list.Add("盐河闸"); list.Add("淮涟闸"); list.Add("淮沭船闸"); break;
                  case "杨庄闸管理所": list.Add("杨庄闸"); break;
                  case "沭阳闸管理所": list.Add("沭阳闸"); list.Add("柴米地涵"); list.Add("柴米闸"); break;
                  case "沭新闸管理所": list.Add("沭新闸"); list.Add("虞姬沟蓄水闸"); break;
                  case "蔷薇河地涵管理所": list.Add("沭新退水闸"); list.Add("蔷薇河地涵"); list.Add("沭新北船闸"); list.Add("桑墟水电站"); break;
                  case "盐河北闸管理所": list.Add("盐河北闸"); break;
                  case "善后闸管理所": list.Add("善后新闸"); list.Add("烧香河闸"); list.Add("车轴河闸"); break;
                  case "新沂河海口控制工程管理所": list.Add("南深泓闸"); list.Add("中深泓闸"); list.Add("北深泓闸"); break;

                  //这几个注释掉的权限是因为该闸所在管理所只管理一个闸，管理所的权限等同于闸的权限
                  //case "龙埝套闸": list.Add("龙埝套闸"); break;
                  case "沭阳尾水北地涵": list.Add("沭阳尾水北地涵"); break;
                  case "沭阳尾水控制闸": list.Add("沭阳尾水控制闸"); break;
                  case "叮当河尾水南地涵": list.Add("叮当河尾水南地涵"); break;
                  case "叮当河尾水控制闸": list.Add("叮当河尾水控制闸"); break;
                  //case "盐河尾水南地涵": list.Add("盐河尾水南地涵"); break;
                  //case "滨海抽水站": list.Add("滨海抽水站"); break;
                  case "灌河地涵": list.Add("灌河地涵"); break;
                  case "响水引水闸": list.Add("响水引水闸"); break;
                  //case "二河闸": list.Add("二河闸"); break;
                  //case "淮阴第二抽水站": list.Add("淮阴第二抽水站"); break;
                  case "淮阴闸": list.Add("淮阴闸"); break;
                  case "盐河闸": list.Add("盐河闸"); break;
                  case "淮涟闸": list.Add("淮涟闸"); break;
                  case "淮沭船闸": list.Add("淮沭船闸"); break;
                  //case "杨庄闸": list.Add("杨庄闸"); break;
                  case "沭阳闸": list.Add("沭阳闸"); break;
                  case "柴米地涵": list.Add("柴米地涵"); break;
                  case "柴米闸": list.Add("柴米闸"); break;
                  case "沭新闸": list.Add("沭新闸"); break;
                  case "虞姬沟蓄水闸": list.Add("虞姬沟蓄水闸"); break;
                  case "沭新退水闸": list.Add("沭新退水闸"); break;
                  case "蔷薇河地涵": list.Add("蔷薇河地涵"); break;
                  case "沭新北船闸": list.Add("沭新北船闸"); break;
                  case "桑墟水电站": list.Add("桑墟水电站"); break;
                  //case "盐河北闸": list.Add("盐河北闸"); break;
                  case "善后新闸": list.Add("善后新闸"); break;
                  case "烧香河闸": list.Add("烧香河闸"); break;
                  case "车轴河闸": list.Add("车轴河闸"); break;
                  case "南深泓闸": list.Add("南深泓闸"); break;
                  case "中深泓闸": list.Add("中深泓闸"); break;
                  case "北深泓闸": list.Add("北深泓闸"); break;
              }
              return list;
          }

        private void LoginForm_Load(object sender, EventArgs e)
        {
            //上次登录名记忆功能
            HxLog.WriteLog log = new HxLog.WriteLog();
            if (!System.IO.File.Exists(log.path))
            {
                System.IO.File.Create(log.path);
            }
            try
            {
                string[] loginInfo = (log.GetLoginInfo()).Split('|');
                this.txtUser.Text = loginInfo[0];
                this.txtPwd.Text = loginInfo[1];
            }
            catch { }

            txtPwd.PasswordChar = '*';//密码*表示
            this.AcceptButton = btnLogin;//登录可以Enter键响应
        }

        private void btnLogin_Click(object sender, EventArgs e)
        {
            user = txtUser.Text.Trim();
            pwd = txtPwd.Text.Trim();
            if (user == "" || pwd == "")
            {
                MessageBox.Show("请输入用户名和密码！","提示",MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                //根据用户名密码获取用户权限
                string sql = "select Limit ID from [peo_info] where PeoId = '" + user + "' and Password = '" + pwd + "'";
                DataSet ds = DbHelperSQL.Query(sql);
                if (ds.Tables[0].Rows.Count > 0)
                {
                    this.Hide();
                    MainForm mainform = new MainForm();
                    pmit = ds.Tables[0].Rows[0][0].ToString();
                    //不是管理员的话隐藏系统管理的几个菜单
                    if (pmit != "管理员")
                    {
                        mainform.密码修改ToolStripMenuItem.Enabled = true;
                        mainform.录入ToolStripMenuItem.Enabled = false;
                        mainform.权限修改ToolStripMenuItem.Enabled = false;
                        mainform.密码重置ToolStripMenuItem.Enabled = false;
                        mainform.测点命名类型ToolStripMenuItem.Enabled = false;
                        mainform.闸站管理ToolStripMenuItem.Enabled = false;
                    }
                    //初始密码登录的话提示用户修改密码
                    if (pwd == "000000")
                    {
                        MessageBox.Show("初次登录，请至【系统管理】→【密码修改】修改登录密码！","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning);
                    }

                    //上次登录名记忆功能
                    HxLog.WriteLog log = new HxLog.WriteLog();
                    log.SaveLoginInfo(user, pwd);
                    //窗体打开最大化
                    mainform.WindowState = FormWindowState.Maximized;
                    mainform.ShowDialog();

                }
                else
                {
                    MessageBox.Show("用户名或密码不对，请重新输入！");
                }
            }
        }

        private void btnExit_Click(object sender, EventArgs e)
        {
            this.Hide();
        }

    }
}
